Search Functionality এর মাধ্যমে ডেটা ফিল্টার করা

Web Development - কোডইগনাইটার (Codeigniter) - CodeIgniter এর Pagination এবং Search Functionality |

CodeIgniter-এ Search Functionality ব্যবহার করে ডেটা ফিল্টার করা খুবই সহজ। এটি সাধারণত ব্যবহারকারীদের নির্দিষ্ট ডেটা খুঁজে পেতে সাহায্য করে। উদাহরণস্বরূপ, একটি টেবিল বা তালিকা থেকে ডেটা ফিল্টার করা।


Search Functionality ইমপ্লিমেন্ট করার ধাপ

১. ডাটাবেস সেটআপ

ডাটাবেসে একটি টেবিল তৈরি করুন। উদাহরণস্বরূপ, একটি products টেবিল:

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    category VARCHAR(255),
    price DECIMAL(10, 2)
);

ডাটাবেসে কিছু ডেটা যোগ করুন:

INSERT INTO products (name, category, price) VALUES
('Laptop', 'Electronics', 50000),
('Smartphone', 'Electronics', 20000),
('Table', 'Furniture', 1500),
('Chair', 'Furniture', 800);

২. Model তৈরি

app/Models/ProductModel.php ফাইল তৈরি করুন:

<?php

namespace App\Models;

use CodeIgniter\Model;

class ProductModel extends Model
{
    protected $table = 'products';
    protected $allowedFields = ['name', 'category', 'price'];

    // ডেটা সার্চ করার মেথড
    public function searchProducts($keyword)
    {
        return $this->like('name', $keyword)
                    ->orLike('category', $keyword)
                    ->findAll();
    }
}

৩. Controller তৈরি

app/Controllers/Product.php ফাইল তৈরি করুন:

<?php

namespace App\Controllers;

use App\Models\ProductModel;

class Product extends BaseController
{
    public function index()
    {
        $productModel = new ProductModel();

        // সার্চ কিওয়ার্ড রিসিভ করা
        $keyword = $this->request->getVar('q');

        // সার্চ কন্ডিশন অনুযায়ী ডেটা ফিল্টার করা
        if ($keyword) {
            $products = $productModel->searchProducts($keyword);
        } else {
            $products = $productModel->findAll();
        }

        $data = [
            'products' => $products,
            'keyword' => $keyword
        ];

        return view('product_list', $data);
    }
}

৪. View তৈরি

app/Views/product_list.php ফাইল তৈরি করুন:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Product List</title>
</head>
<body>
    <h1>Product List</h1>

    <!-- সার্চ ফর্ম -->
    <form method="get" action="/product">
        <input type="text" name="q" value="<?php echo $keyword; ?>" placeholder="Search...">
        <button type="submit">Search</button>
    </form>

    <!-- প্রোডাক্ট তালিকা -->
    <ul>
        <?php if ($products): ?>
            <?php foreach ($products as $product): ?>
                <li>
                    <?php echo $product['name']; ?> - <?php echo $product['category']; ?> - <?php echo $product['price']; ?> BDT
                </li>
            <?php endforeach; ?>
        <?php else: ?>
            <li>No products found.</li>
        <?php endif; ?>
    </ul>
</body>
</html>

৫. Route সেট করা

app/Config/Routes.php ফাইলে Route যুক্ত করুন:

$routes->get('product', 'Product::index');

ফিচার পরীক্ষা

  1. ব্রাউজারে যান এবং http://localhost/your_project_name/product URL অ্যাক্সেস করুন।
  2. সার্চ বক্সে একটি কীওয়ার্ড লিখুন (যেমন: Electronics বা Table) এবং ফলাফল ফিল্টার হওয়া দেখুন।

Query Explanation

Model এর searchProducts মেথডে like() এবং orLike() ব্যবহার করা হয়েছে:

  • like('field', 'value'): একটি ফিল্ডের নির্দিষ্ট মান অনুসারে ডেটা ফিল্টার করে।
  • orLike('field', 'value'): OR কন্ডিশনের মাধ্যমে একাধিক ফিল্ড ফিল্টার করে।
return $this->like('name', $keyword)
            ->orLike('category', $keyword)
            ->findAll();

সুবিধা

  1. সহজ এবং দ্রুত: CodeIgniter-এর Query Builder দিয়ে সহজেই সার্চ ইমপ্লিমেন্ট করা যায়।
  2. ডাইনামিক ফিল্টারিং: একাধিক কলামে সার্চ ফিল্টার প্রয়োগ করা যায়।
  3. রিসপন্সিভ: বড় ডেটাবেসে দ্রুত ফলাফল রিটার্ন করে।

CodeIgniter-এ Search Functionality ইমপ্লিমেন্ট করে আপনি ব্যবহারকারীদের জন্য একটি কার্যকর ডেটা ফিল্টারিং সিস্টেম তৈরি করতে পারবেন। এটি আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ইউজার-ফ্রেন্ডলি করে তুলবে।

Content added By
Promotion